package org.example.server;

import io.vertx.core.Vertx;

/**
 * @Title: VertxHttpServer
 * @Author: kunliangzhao
 * @Package org.example.server
 * @Date: 2025/6/6 14:16
 * @Description: NIO框架的Vertx作为Web服务器
 */
public class VertxHttpServer implements HttpServer {


    public void doStart(int port) {
        // Vertx实例
        Vertx vertx = Vertx.vertx();

        // HTTP服务器
        io.vertx.core.http.HttpServer server = vertx.createHttpServer();

        // 监听端口并处理请求
//        server.requestHandler(request -> {
//            // 处理请求
//            System.out.println("收到请求：" + request.method() + " " + request.uri());
//
//            // 发送响应
//            request.response()
//                    .putHeader("Content-Type", "text/plain")
//                    .end("Vert.x HTTP 响应");
//        });
        server.requestHandler(new HttpServerHandler());

        // 启动HTTP服务器并监听指定端口
        server.listen(port, result -> {
            if (result.succeeded()) {
                System.out.println("HTTP服务器已启动，监听端口：" + port);
            } else {
                System.out.println("启动HTTP服务器失败：" + result.cause());
            }
        });
    }
}
